export function arrayToTree(arr: any[], maxLevel: number = Infinity): any[] {
  // 创建一个映射，用于快速查找每个节点
  const map = {};
  arr.forEach((item) => {
    map[item.code] = { ...item }; // 初始化每个节点
  });

  // 递归计算层级
  const calculateLevel = (node: any, level: number) => {
    node.level = level; // 为当前节点添加层级
    if (level >= maxLevel) return; // 如果达到最大层级，停止递归

    // 找到当前节点的所有子节点
    const children = arr.filter((item) => item.parentCode === node.code);
    if (children.length > 0) {
      node.children = children.map((child) => {
        calculateLevel(child, level + 1); // 递归计算子节点的层级
        return child;
      });
    }
  };

  // 找到根节点并开始递归
  const rootNodes = arr.filter((item) => item.parentCode === "0");
  rootNodes.forEach((root) => {
    calculateLevel(root, 1); // 从根节点开始，层级为 1
  });

  return rootNodes;
}
